Systems for geographic event processing, also called geo-streaming systems, receive streams of input events and produce meaningful output events from them, where input (and possibly output) events are characterized by a geographic location or area. Examples of geographic event processing systems are geo-fencing systems, systems for real-time crowd detection based on GPS location data, or systems for computing continuously updated heat maps from location-tagged temperature sensor measurements arriving over time.
Geographic event processing systems have to perform real-time processing of geospatial data that is often produced with high event rates. Given the high amount of data to be processed, geographic event processing systems typically distribute the event processing among different computational nodes, which in this regard function as a cluster of computers.
For instance, “Map-Reduce” (as described in J. Dean and S. Ghemawat: “MapReduce: Simplified data processing on large clusters,” Communications of the ACM 51.1 (2008): 107-113) is a well-known framework for performing distributed geographic event processing. Another distributed real-time stream processing system, known as “Storm” (https://github.com/nathanmarz/storm/wiki), takes user-defined computation graphs (so called topologies), deploys them on computers in a cluster to perform scalable stream processing.
Generally, current state-of-the art systems and methods for distributed geographic event processing fall into one of the following categories:                (1) generic-purpose rule based event processing. Such systems solve the load balancing problem by either manually or automatically distributing the event processing rules among the different computational nodes and perform event routing such that each computer receives only the events that are relevant for its processing rules.        (2) distributed stream processing systems where user-defined processing chains are manually or automatically deployed on the different computers of a cluster.        (3) distributed spatial databases.        (4) systems that are tailored to specific event processing tasks like e.g. geo-fencing systems.        (5) generic-purpose systems for automatically distributing processing tasks based on sets of key-value pairs among clusters of computers.        
Category (1) systems and methods treat individual rules as atomic in the sense that they cannot be divided among several computers. When there are rules that require more events than a single computer node can handle, such systems cannot be used. The same observation holds for category (2) systems, where only for stateless processing an input stream can be divided among more than one processing node.
Category (3) systems only support a predefined set of read and write operations, but do not support processing.
Category (4) systems perform one specific pre-defined geographic event processing task but are not configurable to perform also other tasks—if other tasks need to be performed the systems need to be re-implemented from scratch, including all aspects of distribution.
Finally, category (5) systems need to represent any state as well as input and output as a discrete and finite set of key-value pairs, which limits their applicability to geographic event processing tasks. Furthermore, category (5) systems, due to their generic purpose, cannot not exploit the geographic nature of geo-streaming operators for achieving increased efficiency.
To summarize, up to now, efficient solutions for distributed geo-streaming systems either have to be designed by hand for each specific geo-streaming task (e.g. for geo-fencing, crowd detection, etc.), or have to use generic-purpose frameworks (e.g. map-reduce or generic stream processing frameworks) that cannot exploit the performance optimizations that would be possible due to the geospatial nature of the data.